package de.general;

public class ExceptionWdh02 {

	public static void main(String[] args) {
		
		String texto = "";
		try{
			texto = reverse("benjas");
		}catch(Exception e){
			System.out.println("Exception arrojada: "+ e);
		}
		finally{
			System.out.println("Resultado dado: "+ texto);
			System.out.println("Fin del Programa.");
		}
		
	}
	
	// Metodo estatico, porque los metodos estaticos no pueden llamar
    // a metodos no estaticos.
    private static String reverse(String cadena) throws NadaQueDevolver
    {
        if (cadena.length()<1)
            throw  new NadaQueDevolver();
         
        String cadenaInversa = ""; // Creacion e inicializacion de una variable local
         
        for (int x = cadena.length()-1; x >= 0; x--)
        {
            cadenaInversa += cadena.charAt(x);
        }
         
        return cadenaInversa;
    }
 
}
 
// Excepcion personalizada, hereda a Exception para arrojar mi mensaje personalizado
class NadaQueDevolver extends Exception
{
    NadaQueDevolver()
    {
        super("No hay texto que devolver");
    }
}
